package cn.sfrog.project.biz.admin.service;


import cn.sfrog.project.biz.admin.domain.BizHospital;
import cn.sfrog.project.biz.admin.domain.vo.BizHospitalFormVO;
import cn.sfrog.project.biz.admin.domain.vo.BizHospitalQueryVO;
import cn.sfrog.project.biz.admin.domain.vo.BizHospitalVO;
import cn.sfrog.project.biz.web.vo.index.*;
import cn.sfrog.project.biz.web.vo.order.AppServiceHospitalResultVO;
import cn.sfrog.project.biz.web.vo.service.AppServiceDetailQueryVO;
import cn.sfrog.system.domain.vo.BizStatusChangeVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 医院Service接口
 */
public interface IBizHospitalService extends IService<BizHospital> {
    /**
     * 查询医院
     *
     * @param id 医院主键
     * @return 医院
     */
    public BizHospitalVO selectBizHospitalById(Long id);

    /**
     * 查询医院列表
     *
     * @param query 医院
     * @return 医院集合
     */
    public List<BizHospitalVO> selectBizHospitalList(BizHospitalQueryVO query);

    /**
     * 新增医院
     *
     * @param form 医院
     * @return 结果
     */
    public boolean insertBizHospital(BizHospitalFormVO form);

    /**
     * 修改医院
     *
     * @param form 医院
     * @return 结果
     */
    public boolean updateBizHospital(BizHospitalFormVO form);

    /**
     * 批量删除医院
     *
     * @param ids 需要删除的医院主键集合
     * @return 结果
     */
    public boolean deleteBizHospitalByIds(Long[] ids);

    /**
     * 更改状态
     *
     * @param vo 更改状态表单
     * @return 结果
     */
    boolean changeStatus(BizStatusChangeVO vo);

    /**
     * 获取APP首页热门医院
     *  @param queryVO
     * @return
     */
    List<AppHospitalResultVO> selectAppIndexHospitalList(AppHospitalQueryVO queryVO);

    /**
     * 医院更多-查询所有的医院
     * @param queryVO
     * @return
     */
    List<AppHospitalResultVO> selectAllHospitalList(AppHospitalQueryVO queryVO);

    /**
     * APP-获取医院详情
     * @param id
     * @return
     */
    AppHospitalDetailResultVO selectAppHospitalDetail(Long id);

    /**
     * APP-全局搜索
     * @param keyword
     * @param cityCode
     * @param type
     * @return
     */
    AppGlobalSearchVO selectAppIndexGlobalSearch(String keyword,String cityCode,String type);

    /**
     * APP-获取服务医院列表
     * @param queryVO
     * @return
     */
    List<AppServiceHospitalResultVO> selectAppServiceHospitalList(AppServiceDetailQueryVO queryVO);

    /**
     * 获取所有的医院
     * @return
     */
    List<AppHospitalVO> selectAppAllHospitalList();


}
